﻿using System;
using Mbs.Collections;
using Mbs.ComponentModel.Container.Context;

namespace Mbs.ComponentModel.Container.Metadata
{
    public interface IComponentInfo : IKey<string>, IEquatable<IComponentInfo>
    {
        Type Service { get; }
        Type Implementation { get; }
        bool IsLazyInit { get; set; }
        string Activator { get; set; }
        string Lifestyle { get; set; }
        IPropertySet ExtendedProperties { get; }

        Func<ICreateContext, object> Factory { get; }
    }
}
